#ifndef _PROJECT_H_
#define _PROJECT_H_

#include <vector>
#include <GameObject/Scene.h>
#include <Core/Reflect.h>
#include <filesystem>

namespace Engine2D
{
    class Project
    {
        REF_ENABLE
    public:
        Project() = default;
        virtual ~Project() = default;

        static void NewProject(const std::string & fileName);
        static void OpenProject(const std::string & fileName);
        static void SaveProject(std::shared_ptr<Engine2D::Scene> scene);
        static std::shared_ptr<Scene> CreateScene();

    private:
        std::string m_projectName;
        std::string m_sceneName;
        inline static std::shared_ptr<Project> s_activeProj;
    };
    REF_REGISTER_CLASS(Project,
        REF_REGISTER_FIELD(Project, m_projectName),
        REF_REGISTER_FIELD(Project, m_sceneName)
    )
} // namespace Engine2D


#endif